﻿using GameProtocol.Protocol;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace NetCommon
{
    
    /// <summary>
    /// 网络传输模型（协议/消息）
    /// </summary>
    public class NetModel
    {
        /// <summary>
        /// 模块号 游戏的模块类型：登录，背包，战斗。。。
        /// </summary>
        public Protocal protocal;
        /// <summary>
        /// 命令号： 当前子模块下的不同协议
        /// </summary>
        public short commond;
        /// <summary>
        /// 消息体（当前协议对应的消息数据，可以为空）
        /// </summary>
        public object message;

        /// <summary>
        /// 获取指定类型的消息
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <returns></returns>
        public T Get<T>()
        {
            return (T)message;
        }

        public override string ToString()
        {
            return string.Format("NetModel Type:{0} Commond:{1} Msg:{2}", protocal, commond, (message == null) ? "null" : message.ToString());
        }
    }
}
